package com.example.testapp.data.entity

import androidx.room.ColumnInfo
import androidx.room.PrimaryKey
import java.io.Serializable
import java.time.LocalDateTime

/**
 * 基础实体类，包含所有表共有的通用字段
 */
abstract class BaseEntity : Serializable {
    companion object {
        private const val serialVersionUID = 1L
    }

    /**
     * 主键ID，使用雪花算法生成
     */
    @JvmField
    @PrimaryKey
    @ColumnInfo(name = "id")
    var id: Long = 0

    /**
     * 创建时间
     */
    @JvmField
    @ColumnInfo(name = "create_date")
    var createDate: LocalDateTime? = null

    /**
     * 更新时间
     */
    @JvmField
    @ColumnInfo(name = "update_date")
    var updateDate: LocalDateTime? = null

    /**
     * 删除时间，软删除使用
     */
    @JvmField
    @ColumnInfo(name = "del_at")
    var delAt: LocalDateTime? = null

    /**
     * 删除标志，0表示未删除，1表示已删除
     */
    @JvmField
    @ColumnInfo(name = "del_flag")
    var delFlag: Int? = null
} 